Method and system for handling a loop back connection using a priority unspecified bit rate in ADSL interface

ABSTRACT

A new format for asynchronous transfer mode defines a priority unspecified bit rate format; which uses the same memory structure as that used by the existing UBR and CBR traffic protocols. This format is also used for a loopback operation.

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims priority from a co-pending patent application Ser. No. 09/338,917 filed Jun. 23, 1999, which claims priority to Provisional Patent Application Serial No. 60/090,443, filed Jun. 24, 1998.

FIELD OF THE INVENTION

[0002] 1. Field

[0003] The present system teaches a new priority system for asynchronous transfer mode, and an application of that new system to a loop back operation.

[0004] 2. Background

[0005] Asynchronous transfer mode or ATM is a telecommunications protocol that allows packet based transfer of information. Cells of information are sent across an information network defined by a number of nodes. The information is sent from node-to-node.

[0006] An ATM transport network (i.e., a communication network, which transmits information using ATM cell packets) is known to include an ATM layer and a physical layer. The ATM layer is based on the virtual path/virtual channel (VP/VC) concept. The VC identifies a unidirectional communication capability through which ATM cells are transported. One or more virtual channels (VCs) can be used in a particular virtual path (VP), which also identifies another level of the communication capability through which the ATM cells are transported.

[0007] An ATM cell is the smallest information unit. It includes a header field of 5 bytes or octets, and a payload field of 48 bytes or octets. The header field includes VP and VC identifiers. These identifiers are used for routing the information to an intended destination.

[0008] Communication in known ATM networks is initiated during a connection setup, after which cells belonging to one connection follow a predetermined path defined by the VPI and VCI on a particular link. The connection control information transferred during setup utilizes a unique Signaling VC (SVC) which is included in the VP. The SVC is identified by the virtual path ID (VPI) and virtual channel ID (VCI).

[0009] Cells destined for many different end points are sent over a single physical communications circuit. The header of each cell includes a channel identifier, which is used to control the routing of the cell through the ATM system. The channel identifier determines routing of the cell.

[0010] In a typical ATM system there are 256 possible VPIs and 65,536 possible VCIs;

[0011] thus, there are 16,777,216 possible channel identifiers (VPI/VCIs). One of the many challenges in designing an ATM network is how to handle this huge number of corrections.

[0012] Specified traffic control protocols are used to determine the routing of the information. The routing is controlled using conventional addressing techniques.

[0013] Further details of ATM are well known in the art. In addition, different flavors and sub-types of ATM are known, including digital subscriber line (“DSL”), asymmetric digital subscriber line (“ADSL”), and other flavors of digital subscriber line (“XDSL”).

[0014] In all of these communication modes, a message is broken into multiple portions or cells. A conventional ATM system breaks the total message to be sent over ATM into 48 byte data portions. A typical data message might be, for example, 1500 bytes in length. Hence, the 1500 byte message is divided up into 31 of the 48 byte cells.

[0015] Specified traffic control protocols are used to determine the routing of the information. The routing is controlled using conventional addressing techniques.

[0016] ATM has the ability to provide a guaranteed quality of service. This compares with other information services, which have no such guarantee. Data packages are subdivided into classes of services. The ATM switches prioritize each data packet routing based on the quality of service.

[0017] Conventional quality of service classes include substantially constant bit rate (“CBR”), variable bit rate (“VBR”) and unspecified bit rate (“UBR”). These classes are based on ITU recommendation 1.371 entitled Traffic Control, congestion control in BSIDN and on version 4.0 of “the Traffic Management specification”. Connection data transmission rates may be set on a semi-permanent basis depending the requirements for the connection.

[0018] One very good quality of service is CBR or constant bit rate. The data is guaranteed to arrive at a constant rate. The ATM switches along the virtual path prioritize the data packages. The CBR traffic gets priority over the remaining traffic. Therefore, even if there is one or more congested switches, the CBR still gets through quickly.

[0019] UBR, or unspecified bit rate is at the other end of the scale as compared with CBR. There is no guarantee about when the data will arrive at the destination.

[0020] Other classes of service have been defined by the ATM forum. However, these can require extensive and complicated handling by the ATM switch. Examples include AVR (available variable rate) or VVR (variable variable rate). Each requires that the ATM switch be significantly reconfigured to handle the new requirements.

SUMMARY OF THE INVENTION

[0021] The present specification defines another quality of service class for such a communication connection. The present system uses the relatively simple interface of CBR/UBR to provide an intermediate form of service using the same memory infrastructure as in CBR/UBR. In particular, the present system defines a class of service that accommodates loop back within an ATM network. This intermediate form of service enables an unspecified bit rate, which can provide protection against backlog in a congested switch, without giving of priority over all other parts.

BRIEF DESCRIPTION OF DRAWINGS

[0022] These and other aspect will now be described in detail with respect to the accompanying drawings, wherein:

[0023]FIG. 1 shows a general network architecture of the present system;

[0024]FIGS. 2A and 2B show the timing ring as well as the transmit buffer associated with the timing ring according to one embodiment of the present invention.

[0025]FIG. 3 shows a flowchart of operation to handle different priority information;

DETAILED DESCRIPTION

[0026] The disclosed mode as described with reference to FIGS. 1-3 describes a switch architecture and includes a new quality of service for use in an ATM network. This new quality of service is called priority unspecified bit rate or priority UBR. This new priority UBR class also enables a testing mode that gives a more accurate test of the network, using a loop back condition that gauges the message handling capability of a UBR system.

[0027] The overall block diagram of the general network architecture is shown in FIG. 1. The embodiments described herein can operate as part of an ATM system. An ADSL interface card for communicating with an ADSL network is described. More generally, however, this system can operate within any system that carries out data communication by dividing a total message into separate addressed packets, or more specifically in an asynchronous transfer mode system.

[0028] A PC 125 is, for example, an Internet service provider that provides Internet service to a number of users 98, 99, and others that are not shown. PC 125 includes an ADSL network interface card or “NIC” 110. NIC 110 connects to the telephone line 112 via a plain old telephone system (POTS) splitter 114. Other POTS equipment 117 can include conventional telephone equipment.

[0029] A conventional ATM subscriber access multiplexer or “ASAM” 120 connects from telephone line 112 to ATM network 115. The ASAM 120 multiplexes a number of communications via the ATM network 115. In this system, the NIC 110 becomes a node connecting to the ATM network 115, which allows routing to other nodes, such as second node 150. While only one second node 150 is shown, the ATM network is typically connected to literally thousands of other nodes shown generally in FIG. 1.

[0030] Any of the multiple nodes can send or receive a message. The connection among these nodes are based on their VCI/VPI identifiers.

[0031] Node 1 receives a number of cells that will form ATM messages.

[0032] The ADSL NIC 110 forms a node on the network. This node, like other nodes, is capable of handling connections that include CBR and UBR data within a timing slot ring. The timing slot ring could alternatively be physically located elsewhere in the network.

[0033]FIG. 2A shows the timing slot ring (or buffer) 200 that is used to hold data to be sent or information indicative thereof. The timing slot can be stored in 110 or in memory associated with a processor. This can be in the NIC 110 or in PC 125 or in any node or switch. The buffer 200 is assembled to have data in an order that enables it to be sent at a desired time. The timing slot ring is investigated at each time slot. Data is transmitted at that time slot according to its priority.

[0034] According to the present system, a special flag is added to certain UBR timing slots 210. This flag provides those items of UBR data with priority within the timing slot ring 200. This flag may be included, for example, within the header field of each data packet to identify the accompanying payload field as containing priority UBR data. This flagged data becomes priority UBR.

[0035] Each timing slot can have CBR data and/or UBR data as shown. The asterisk within each time slot indicates there is data to be transmitted from that time slot. CBR data is put into the beginning (head) of a first queue 202. Any UBR data is put at the end (tail) of a second queue 210.

[0036] If UBR data is present in a time slot, the UBR data is copied to a UBR queue 212, shown in FIG. 2B. UBR queue 212 is a buffer or an array used for transmitting UBR data from timing slot ring 200. The procedure for copying UBR data from timing slot ring 200 into UBR queue 212 and transmitting it therefrom is discussed below with reference to FIG. 2B. If CBR data is present in a time slot, either exclusively or in conjunction with UBR data, the CBR data is transmitted immediately from timing slot ring 200. UBR queue 212 has a first pointer (in_ptr) 214 to indicate the location in which UBR data is to be stored in the buffer and a second pointer (out_ptr) 216 to indicate the location in the buffer which data is to be transmitted from. For a more efficient use of UBR queue 212, a pointer to the address of the UBR data within timing slot ring 200 may be copied to UBR queue 212, instead of copying the UBR data packet itself into UBR queue 212. This will minimize the size of the buffer required for UBR queue 212.

[0037]FIG. 3 is a flow chart showing steps taken by an embodiment of the present invention. This flowchart can be carried out in software, hardware defined by hardware definition language (HDL), firmware, or combinations thereof. This is most advantageously carried out within the modem software of the ADSL NIC 110.

[0038] The operation starts at step 405 where the system first determines whether the current data is UBR data. If the data is UBR data, flow proceeds to step 410, which determines if the data is regular UBR data or priority UBR data (P-UBR). The two classes are handled differently, as described above.

[0039] If the data is P-UBR, step 415 represents the procedure for sending the data or its address to UBR queue 212. Out_ptr is decremented by moving towards the front (or head) 218 of UBR queue 212. The P-UBR data or its address is then assigned to the address of out_ptr 216. If at step 410, it is determined that the data is UBR data, step 420 represents the procedure for sending the UBR data or its address to UBR queue 212. In this instance, the UBR data or its address is assigned to the address of in_ptr 214. In_ptr 214 is then incremented toward the back (or tail) 220 of UBR queue 212.

[0040] If at step 405 there is no UBR data detected, the flow proceeds to step 425 which detects whether there is CBR data in the timing ring slot 200. A positive detection of CBR data in the timing ring causes that CBR data to be transmitted at step 435.

[0041] If there is no CBR data in the timing ring, (or after all the CBR data has been sent) the flow proceeds to step 430 which transmits the output data located at the address of out_ptr 216. Out_ptr 216 is then incremented towards the back (tail) 220 of UBR queue 212 to transmit the next UBR data packet in the sequence. It can therefore be seen that when in_ptr 214 is greater than out_ptr 216, namely positioned further toward the back 220 of UBR queue 212, it is an indication that there is data to be transmitted. _In this way, using the existing memory structure and data structure, an additional class of information can be processed. This class of information is handled after the constant bit rate data, but is not left at the end of the queue where it can be seriously delayed by a congested switch. Rather, this becomes the first UBR data to be sent.

[0042] In essence, the priority UBR data will always be handled before conventional UBR data but still after CBR data. Importantly, however, this creates a new class of service using the existing timing slot ring structure that is already used for CBR/UBR data.

[0043] One application of this new class is for allowing certain network testing. A specific loop back connection is described for testing purposes, for example. A node, such as node 125, may request to test characteristics of the system. The test can be carried out by sending a message to a specified location, along with a command that some response be sent back. This is conventionally called loop back. The amount of time it takes for a message to come back gauges the speed of the system. The mere fact that a message returns indicates that the system is at least working correctly.

[0044] However, a very congested switch can skew the response. For example, one congested switch could hold the UBR data for an inordinate amount of time, especially if there is a lot of CBR data at that same switch.

[0045] According to this system, a loop back command is sent with an indication that it is priority UBR data. Hence, this loop back command is handled before any of the UBR data. However, this command does not interfere with the CBR data. In addition, since this command does not interfere with the CBR data, it further gives a more realistic view of a network's loading. If CBR data is taking a long time, the priority UBR data will also take a long time. However, a highly congested switch will not skew the values, since this priority UBR data will pass that highly congested switch as fast as any UBR data could so pass it.

[0046] The present system describes the ring being stored within a memory associated with a processor. This shows the timing slot ring being formed of two side by side queues. Of course, a single queue could be used. In this case CBR data is put at the front 218 of one queue and UBR data is put at the back 220 of the same queue. The priority UBR data is placed in the middle.

[0047] Similarly, in place of two queues, a third queue could be defined, one for CBR, one for UBR and one for priority UBR.

[0048] Although only a few embodiments have been described in detail above, other embodiments are contemplated by the inventor and are intended to be encompassed within the following claims. 

1. A communication format, comprising: a first class of service where information is sent at a substantially constant bit rate; a second class of service where information is sent at an unspecified bit rate; and a third class of service, where information is sent at a priority unspecified bit rate and is sent prior to information at said unspecified bit rate, wherein said first class of service is available in a first data structure within a buffer and wherein said second class of service and said third class of service are available in a second data structure within said buffer.
 2. A format as in claim 1, where said information is asynchronous transfer mode information.
 3. A message sending system, comprising: a memory, storing said buffer including information about packets of information to be sent, buffer storing a plurality of packets of information in a specified order; and a controller, determining a class of service of said information to be sent, said class of service being one of a guaranteed bit rate, and a non-guaranteed bit rate, and a priority non-guaranteed bit rate, and storing said guaranteed bit rate information in a first data structure of said buffer in a way that will be transmitted first, storing said non-guaranteed bit rate information in a second data structure in said buffer in a way that it will be transmitted later, and storing said priority non-guaranteed bit rate information in said second data structure of said buffer, wherein said priority non-guaranteed bit rate information will be transmitted before said non-guaranteed bit rate information, but after said guaranteed bit rate information.
 4. A system as in claim 3, wherein said first and second data structures comprise first and second queues.
 5. A system as in claim 4, wherein said guaranteed bit rate information is set at a head of said first queue.
 6. A system as in claim 5, wherein said non-guaranteed bit rate information is added to a tail of said second queue, and said priority non-guaranteed bit rate information is added to a head of said second queue.
 7. A system as in claim 6, wherein said controller defines a flag that enables reading from said second queue, said flag pointing to said head of said second queue when priority non-guaranteed information is present, and pointing to said tail of said second queue when priority non-guaranteed information is not present.
 8. A system as in claim 3, wherein said controller operates, at a time, to first determine if guaranteed bit rate information is present and transmitting it if so, and then determine if non-guaranteed bit rate information is present and transmitting it if so.
 9. A system as in claim 8, wherein said controller determines if non-guaranteed bit rate information is present, by first determining if priority non-guaranteed bit rate information is present and transmitting it if so, and then determining if non-guaranteed bit rate information is present and transmitting it if so.
 10. An asynchronous transfer mode system, comprising: a connection to an asynchronous transfer mode network, sending information in a specified asynchronous transfer mode format and receiving messages in said specified asynchronous transfer mode format, said messages including cells of information with specified qualities of service, said specified qualities of service including a substantially constant bit rate service, an unspecified bit rate service, and a priority unspecified bit rate service.
 11. A system as in claim 10, further comprising a memory, which stores a queue of cells, said queue including substantially constant bit rate information first, unspecified bit rate information last, and priority unspecified bit rate information between said substantially constant bit rate information and unspecified bit rate information.
 12. A system as in claim 10, further comprising a controller which ensures data from said queue is in order.
 13. A system as in claim 10, further comprising a memory that stores a queue, defining a pointer to said queue, said pointer defining which packet of information will be transmitted next.
 14. A system as in claim 11 wherein said queue includes a first queue for substantially constant bit rate information and a second queue for unspecified bit rate information and priority unspecified bit rate information.
 15. A system as in claim 11, further comprising a memory that stores a single queue that stores substantially constant bit rate information in one location which is transmitted first, unspecified bit rate information in another location which is transmitted last, and priority unspecified information in a third location which is transmitted between said first and second locations.
 16. A system as in claim 10 wherein said connection to an ATM network further comprises a processor running a stored sequence of instructions, said sequence of instructions controlling at least storing of data and retrieval of data.
 17. A system as in claim 16, wherein said system is an ADSL system, and further comprising an ADSL modem part.
 18. A method of handling a transmission in a packet-driven system, comprising: establishing a class of services associated with each packet; determining for each packet, if the class of service is substantially constant service, and sending said constant service before other services; determining if the class of service associated with the packet is unspecified service, and sending unspecified service after other services; and determining if the class of service is priority unspecified service, and if so, sending said packet before the unspecified service packets, but after the substantially constant service packet.
 19. A method as in claim 18, further comprising storing the data in a queue, organized by its class of service.
 20. A method as in claim 19, wherein said queue is organized with data to be sent first being stored first.
 21. A method as in claim 18, further comprising detecting if the data is substantially constant bit rate data and if so storing the data at a front of a first queue, detecting if the data is unspecified rate data, and if so, storing the data in a second queue.
 22. A method as in claim 21, wherein said second queue stores priority unspecified data before non-priority unspecified data.
 23. A method as in claim 18, further comprising sending data by determining data to be transmitted, determining if said data is unspecified bit rate data, and setting a pointer to said data if so.
 24. A method as in claim 23, wherein said pointer is set to a first location for unspecified bit rate data and to a second location for priority unspecified bit rate data.
 25. A method as in claim 24, wherein said second location is the beginning of the queue and said first location is the end of the queue.
 26. A method as in claim 24, wherein said second location is a part of the queue which will be read first, and said second location is a part of the queue which will be read later.
 27. A method of operating asynchronous transfer mode comprising: defining a buffer which can be used for holding substantially constant bit rate data at a first portion thereof to be transmitted first, and unspecified bit rate data at a second portion thereof to be transmitted later; and defining an additional class of data which has an unspecified priority bit rate, and placing said additional class of data in said buffer in a location where it will be transmitted before said unspecified bit rate data.
 28. A method as in claim 27, further comprising defining a pointer to said buffer, and reading data which is located at said pointer.
 29. A method of testing in an asynchronous transfer mode system, comprising: defining a class of service for information packets, which is not guaranteed, but which has priority over other unspecified bit rate packages; sending a command which causes a remote node to send back an indication of receipt, said command including information that prioritizes it as lower than substantially constant bit rate information, but higher than unspecified bit rate information.
 30. A method of sending information on an asynchronous transfer mode network, comprising: defining a memory structure which can operate with asynchronous transfer mode communications with substantially constant bit rate (CBR) communication and unspecified bit rate (UBR) communication; and adding an additional class of service using the same memory structure as already existing for said CBR and UBR communication.
 31. A method as in claim 30 wherein said memory structure comprises a timing slot ring, and said using comprises defining an additional pointer to priority UBR data that enables said priority UBR data to be sent before said UBR communication.
 32. A method as in claim 30 wherein said pointer points to priority UBR data at the front of a queue, and points to said UBR communication at the back of the queue.
 33. A method as in claim 30 wherein said system uses a single timing ring.
 34. A method as in claim 30 wherein the system uses two separate timing rings.
 35. A method of handling a transmission, comprising: establishing a class of services associated with one or more packets; determining for each packet, if the class of service is a substantially constant service packet; placing said substantially constant service packet or a pointer to said substantially constant service packet in a first data structure; sending said substantially constant service packet from said first data structure first; determining if the class of service associated with the packet is an unspecified service packet; placing said unspecified service packet or a pointer to said unspecified service packet in a second data structure; and sending said unspecified service packet from said second data structure later.
 36. The method of claim 35 wherein said step of placing said unspecified service packet further comprises: obtaining an in_ptr wherein said in_ptr references a location where data is to be added to said second data structure; obtaining an out_ptr wherein said out_ptr references a location where data is to be removed from said second data structure; determining if said unspecified service packet is a priority unspecified service packet; placing said unspecified service packet or a pointer to said unspecified service packet at a location referenced by said out_ptr, if said unspecified service packet is a priority unspecified service packet. Placing said unspecified service packet or a pointer to said unspecified service packet at a location referenced by said in_ptr, otherwise.
 37. The method of claim 36 wherein said step of determining further comprises: examining a header field in said unspecified service packet; and determining if said header field indicates that said unspecified service packet is a priority unspecified service packet.
 38. The method of claim 37, wherein said step of sending said unspecified service packet from said second data structure later further comprises: sending said unspecified service packet at said location referenced by said out_ptr; and decrementing said out_ptr.
 39. A communication format, comprising: a first class of service where information is sent at a substantially constant bit rate; a second class of service where information is sent at an unspecified bit rate; and a third class of service, where information is sent at a priority unspecified bit rate and is sent prior to information at said unspecified bit rate, wherein said first class of service is available in a first data structure within a buffer and wherein said second class of service and said third class of service are available in a second data structure within said buffer.
 40. A format as in claim 39, where said substantially constant bit rate is a highest priority bit rate. 